<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
use think\facade\Route;

//Route::get('think', function () {
//    return 'hello,ThinkPHP6!';
//});
//
//Route::get('hello/:name', 'index/hello');

// 用闭包方式限制路由在news域名下才有效
//Route::domain('news', function(){
//    Route::rule('dr/:id','DataSearch/router');
//});

// 可直接访问域名
//Route::rule('dr/:id', 'DataSearch/router');

// 动态路由
Route::get('dr/:id', function ($id){
    return $id;
});

//资源路由
// resource() 路径改为第一个参数，简化URL的方法
// 子资源 resource('blog.comment', 'Comment')
// php think make:admin Blog // 生成资源控制器
// Route::resource('blog', 'Blog') //blog=规则名，Blog=访问路径
// 注册blog资源路由后 会自带一下方法
// GET: index(blog),create(blog/create),read(blog/:id),edit(blog/:id/edit)
// POST: save(blog)
// PUT: update(blog/:id)
// DELETE: delete(blog/:id)

// 注释路由 // 需要安装扩展
// composer require topthink/think-annotation
// use think\annotation\Route
/**
 * @param $id
 * @return string
 * @route("details/:id");
 * @route("details/:id", method="GET", ext="html", https=1); // 第二个或以上参数可以设置请求类型,更多参数可实现更多功能
 */

use think\annotation\Route\Tesource;
/**
 * @Resoutce("blog") // 资源路由，先use，再声明
 */


// 依赖注入
// app()绑定一个类 到容器中并自动实例化 return app('app\model\One')->username
// bind([]) 批量绑定
// provider.php 批量绑定类到容器文件
// ::class 不需要加单引号，而且需要在前面加 \


// 路由参数
// ext() 检测URL后缀
// https() 检测是否为https请求，可结合ext
// denyExt()禁止后缀
// domain() 检测域名是否匹配
// ajax/pjax/json 检测是否是以上请求方式
// filter 对额外参数做检测
// append 追加额外参数
// option 配置多个参数
// miss 访问错误配置/全局miss/分组miss

// 跨域请求 allowCrossDomain() 可以解除浏览器的限制
//Route::rule('dr/:id', 'DataSearch/router')
//                         -ext('html')->allowCrossDomain();

// URL 生成
// 1.Url.class 创建路由方法和生成URL的方法
// 2.Router::rule('ds/:id','Url/index');
// 3.Router::buildUrl('地址', [参数]...) 获取路由的URL地址
// 4.Router::rule('ds/:id','Url/index')->name('别名'); return Route::buildUrl('u', ['id'=>5])
// 5.return Route::buildUrl('ds/5') 使用路由地址生成URL
// 6.return Route::buildUrl('ds/5')->domain(true); // 添加完整域名路径
// return Route::buildUrl('ds/5')->domain('news'); // 添加完整域名路径
// return Route::buildUrl('ds/5')->domain('news.abc.com'); // 添加完整域名路径
// return Route::buildUrl('ds/5@news.abc.com'); // 添加完整域名路径
// 7.助手函数url()代替Router::buildUrl()
// return url('ds/5')
